#include <stdio.h>

// 定义顺序表结构体
typedef struct {
    int data[10];
    int length;
} SeqList;

// 初始化顺序表
void InitSeqList(SeqList *L) {
    for (int i = 0; i < 10; i++) {
        L->data[i] = i + 1;
    }
    L->length = 10;
}

// 折半查找
int BinarySearch(SeqList L, int key) {
    int low = 0;
    int high = L.length - 1;

    while (low <= high) {
        int mid = (low + high) / 2;
        if (L.data[mid] == key) {
            return mid;
        } else if (L.data[mid] < key) {
            low = mid + 1;
        } else {
            high = mid - 1;
        }
    }

    return -1;  // 没有找到关键字
}

int main() {
    SeqList L;
    InitSeqList(&L);

    int key = 9;
    int index = BinarySearch(L, key);

    if (index != -1) {
        printf("关键字 %d 在顺序表中的位置为：%d\n", key, index);
    } else {
        printf("关键字 %d 在顺序表中不存在！\n", key);
    }

    return 0;
}
